跳到主要内容

Vue3 的 defineComponent 是什么?

defineComponent 函数是什么?

defineComponent 函数,只是对 setup 函数进行封装,返回 options 的对象;

export function defineComponent(options: unknown) {
return isFunction(options) ? { setup: options } : options
}

defineComponent 最重要的是:在 TypeScript 下,给予了组件 正确的参数类型推断

不用 defineComponent 的情况

在写 Vue 时可以发现,不用 defineComponent 也可以使用,如下:

但是把鼠标移动到 setup 函数的参数时,会发现它抛出了错误(可以不理),找不到类型

使用 defineComponent 后

当使用这个 defineComponent 后它就可以正确的类型推断了

import * as Vue from 'vue'
export default Vue.defineComponent(
{
setup(props) {
// do something
}
}
)

TODO: 待更新...